#ifndef _GRATE_CONSTANTS_H_
#define _GRATE_CONSTANTS_H_

// We will use i64 for convenience in the program
#ifndef __GNUC__
typedef __int64 i64;
#else
typedef long long i64;
#endif

// Memory management
const int LITTLE_MEMORY = 1<<27; // Assuming we always have 128M
const int QUEUE_MEMORY_STEP = 1<<27; // Increase queue size, 128 Mb at a time
const int DFA_MEMORY_STEP = 1<<22; // Increase DFA size, 4 Mb at a time

// A few ccnstraints
const int MAX_ALPH_SIZE = 16;
const int MAX_GRATE = MAX_ALPH_SIZE + 1;
const int MAX_WORD_LENGTH = 1<<10; // No words of length more than 1024 will be used
const int MINITER = 25;

// Recompile with "true" to build exe-file for GUI-version
#define GUI_VERSION false

// Binary encoding stuff
const char LONG_MASK = 0x0F;
const char SHORT_MASK = 0x03;

// For Debug purposes only!
#define OUTPUT_ANTIDICTIONARY false
#define OUTPUT_DFA false

#endif